package saei.bean;

import javax.persistence.*;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.ForeignKey;

import saei.bean.parametros.MarcaEquipo;
import saei.bean.parametros.ModeloMonitor;
import saei.bean.parametros.TipoPantalla;
import saei.bean.vo.MonitorVO;

@SuppressWarnings("serial")
@Entity
@PrimaryKeyJoinColumn(name="id_equipo")
public class Monitor extends Equipo
{
    @Column(name="tamanio_pantalla")
    private int tamanioPantalla;
    @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH})
	@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
    @ForeignKey(name="fk_monitor_tipo")
    @JoinColumn(name="id_tipo_pantalla")
    private TipoPantalla tipoPantalla;
    
    public Monitor () {}
    
    public Monitor (String numeroSerie){
    	super(numeroSerie);
    }
    
    public Monitor (String numeroSerie, MarcaEquipo marca, ModeloMonitor modelo, Remito remito, String observaciones,
    		int tamanioPantalla, TipoPantalla tipoPantalla){
    	super(numeroSerie, marca, modelo, remito, observaciones);
    	
    	this.tamanioPantalla = tamanioPantalla;
    	this.tipoPantalla = tipoPantalla;
    }

	public int getTamanioPantalla() {
		return tamanioPantalla;
	}

	public void setTamanioPantalla(int tamanioPantalla) {
		this.tamanioPantalla = tamanioPantalla;
	}

	public TipoPantalla getTipoPantalla() {
		return tipoPantalla;
	}

	public void setTipoPantalla(TipoPantalla tipoPantalla) {
		this.tipoPantalla = tipoPantalla;
	}
	
	public MonitorVO getVO() {
		MonitorVO vo = new MonitorVO();
		vo.setEstado(this.getEstado().getDescripcion());
		vo.setMarca(this.getMarca().getDescripcion());
		vo.setModelo(this.getModelo().getDescripcion());
		vo.setNumeroSerie(this.getNumeroSerie());
		vo.setObservaciones(this.getObservaciones());
		
		vo.setTamanioPantalla(tamanioPantalla);
		vo.setTipoPantalla(tipoPantalla.getDescripcion());
		
		return vo;
	}
}
